﻿// Copyright 2007-2008 Rory Plaire (codekaizen@gmail.com)

using System;

namespace NPack.Interfaces
{
    public interface IBufferedVector<TVector, TComponent> : IVector<TComponent>
        where TVector : IBufferedVector<TVector, TComponent>, 
                        IEquatable<TVector>, IComparable<TVector>, 
                        IComputable<Double, TVector>
        where TComponent : IEquatable<TComponent>, IComparable<TComponent>, 
                           IComputable<TComponent>, IConvertible, IFormattable
    {
        IVectorBuffer<TVector, TComponent> GetBuffer();
        Int32 Index { get; }
        Boolean ValueEquals(TVector other);
    }
}
